第1章
模块化编程概述
什么是模块化编程 · 为什么需要模块化 · 核心思想
概念思想
第2章
多文件项目结构
头文件(.h)与源文件(.c)职责划分 · 项目目录组织规范
结构规范
第3章
头文件编写规范
#ifndef/#define/#endif · extern · 函数原型声明
头文件规范
第4章
源文件实现细节
函数定义 · static函数 · 内部/外部链接
实现链接
第5章
Makefile入门
基本语法 · 目标与依赖 · 变量定义与使用
构建Makefile
第6章
Makefile进阶
自动变量 · 模式规则 · 伪目标 · 条件判断
进阶自动化
第7章
多目录Makefile
递归make · 单Makefile管理多目录 · VPATH/vpath
多目录组织
第8章
CMake入门
CMakeLists.txt语法 · project() · add_executable()
CMake构建
第9章
CMake进阶
头文件路径 · 链接库 · 条件编译 · install指令
进阶库
第10章
静态库(.a)创建与使用
ar命令 · 库命名规范 · 链接静态库
静态库ar
第11章
动态库(.so/.dll)创建与使用
gcc -shared · dlopen/dlsym · 运行时链接
动态库运行时
第12章
库的依赖与冲突
库搜索路径 · 符号冲突 · 静态/动态混合使用
依赖冲突
第13章
模块接口设计
高内聚低耦合 · 接口与实现分离 · 模块间通信
设计接口
第14章
全局变量与模块化
全局变量危害 · getter/setter · 单例模式
全局模式
第15章
回调函数与模块解耦
函数指针 · 回调注册 · 事件驱动模型
回调解耦
第16章
模块初始化与清理
init/deinit函数 · 生命周期管理 · 资源释放
初始化资源
第17章
错误处理与日志模块
错误码 · errno机制 · 日志级别与输出
错误日志
第18章
断言与防御性编程
assert使用 · 参数校验 · 边界检查
断言防御
第19章
单元测试入门
CUnit/Unity框架 · 测试用例 · 测试套件
测试框架
第20章
单元测试进阶
Mock对象 · 桩函数(stub) · 覆盖率分析
Mock覆盖率
第21章
代码版本控制
Git基础 · .gitignore · 分支管理策略
Git版本
第22章
代码审查与重构
代码规范 · 常见坏味道 · 重构手法
重构审查
第23章
项目实战一:计算器模块化
加减乘除模块 · 输入输出分离
实战计算器
第24章
项目实战二:学生成绩管理系统
多文件 · 多模块 · Makefile构建
实战成绩管理
第25章
项目实战三:简易HTTP服务器
socket模块 · 请求解析 · 响应模块
实战HTTP
第26章
项目实战四:嵌入式传感器驱动
抽象层 · 硬件层 · 应用层
实战嵌入式
第27章
跨平台编译
条件编译 · 平台宏 · 编译器兼容
跨平台宏
第28章
性能优化与模块化
内联函数 · 编译器优化 · PGO
优化性能
第29章
文档生成
Doxygen注释规范 · 自动生成API文档
文档Doxygen
第30章
总结与展望
最佳实践 · C2x标准 · Rust对比
总结趋势